type Merge<F, S> = {
    [P in (keyof F | keyof S)]:P extends keyof S?S[P]:F[Exclude<P,keyof S>]
}


//so easy